package com.nb.cloud.doc;

import net.sourceforge.pinyin4j.PinyinHelper;

/**
 * @author lihaoyang6
 * @date 2024年08月04日 08:02
 */
public class HanziToPinyin {

    public static void main(String[] args) {
        String hanzi = "你好，世界！";
        //String pinyin = convertToPinyinString(hanzi, ""); // 使用空字符串作为分隔符



        // 如果你想要每个拼音之间用空格分隔
        String pinyinWithSpaces = convertToPinyinString(hanzi, " ");
        System.out.println(pinyinWithSpaces);
    }

    /**
     * 将汉字字符串转换为拼音字符串。
     *
     * @param hanzi 汉字字符串
     * @param separator 拼音之间的分隔符
     * @return 转换后的拼音字符串
     */
    public static String convertToPinyinString(String hanzi, String separator) {
        StringBuilder pinyin = new StringBuilder();
        for (int i = 0; i < hanzi.length(); i++) {
            char character = hanzi.charAt(i);
            String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(character);
            if (pinyinArray != null) {
                pinyin.append(pinyinArray[0]); // 默认取第一个拼音（忽略多音字情况）
                if (i < hanzi.length() - 1) {
                    pinyin.append(separator);
                }
            }
            // 对于非汉字字符，可以直接添加到结果中
            else {
                pinyin.append(character);
            }
        }
        return pinyin.toString();
    }
}
